home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-28 | 16.2 KB | 442 lines | [TEXT/ROSA] |
- PowerLisp 2.0
- 5/26/96
-
- New Features in PowerLisp 2.0
-
- CLOS Support
- The biggest new feature in PowerLisp 2.0 is the addition of
- CLOS support. See the section on CLOS for details.
-
- Preferences
- A Preferences dialog has been added. It lets you control how
- much time is given to background processes while Lisp
- programs are running. It also lets you choose between having
- output all go to the Worksheet vs. output will go to the window
- that last executed a Lisp command.
-
- Registration Screen (Sorry, but a necessary addition).
- A registration screen has been added at startup. If you have
- registered, you can disable it by entering your name and product
- registration code in the Registration dialog. Contact Roger
- Corman to receive your code if you have already registered.
-
- Better Structure and Array Handling
- In PowerLisp 2.0, structures, arrays and strings are all stored
- more efficiently. Arrays and strings are more consistent and
- more closely adhere to the Common Lisp standard.
-
- Top level variables
- The Common Lisp variables +, ++, *, **, etc. are now properly
- bound during top loop execution as specified in the Common
- Lisp standard.
-
- Misc. Additional Language Features
- A number of other Common Lisp functions which were missing
- are now implemented (I am sorry to not be more specific here).
- Overall, PowerLisp 2.0 is much closer to the CLTL2 specification
- than any previous version of PowerLisp.
-
- More Stable on Power Macs.
- A serious bug which prevented PPC compiled code from
- working on certain Power Macs (related to the memory setup)
- has now been fixed. This generally caused a crash during startup
- on affected machines. The fix was released last summer as
- PowerLisp 1.2.1d. These changes are now included in PowerLisp
- 2.0.
-
-
- PowerLisp 1.2
- 4/1/95
- ---------------
- This is the public release of PowerLisp 1.2. It contains a significant
- number of new features, bug fixes, and enhancements over version 1.1.
- I will go over a number of these here, but probably won't cover all
- of them.
-
- I greatly appreciate the support of those of you who have chosen
- to register PowerLisp, and who have communicated with me regarding
- bugs, requested enhancements, etc. Many of the added features are
- in direct response to those communications.
-
- PowerMac Native
- The single biggest change is that PowerLisp is now a fat binary,
- and runs native on a PowerMac as well as a 68k Mac. The speed of
- the interpreter on a PowerMac is up to 10 times as fast as when running
- emulated.
-
- In addition, a full suite of tools, including PowerPC native code
- compiler, assembler and disassembler are included with PowerLisp.
- PowerLisp is released with both 68k and PPC binaries of the library
- files.
-
- Documentation
- Thanks to Digital Press and Guy L. Steele Jr., Common Lisp the Language,
- 2nd edition is available for electronic distribution. I have packaged
- it in a form that can be browsed in PowerLisp, and will be including
- it with the PowerLisp package for distribution.
-
- Note that Digital Press owns the copyright to this work. Please read
- the readme.txt file in the Documentation folder for information about
- Digital Press and this reference book.
-
- Additionally, I have put an ascii version of the PowerLisp documentation
- in browsable format from within PowerLisp. A hierarchical Documentation
- menu makes it very convenient to get documentation on any Common Lisp
- function.
-
- Also, the Common Lisp documentation function can be used to pull
- up the documentation from CLTL2 as well.
-
- To Install the Common Lisp the Language documentation files so that
- they can be used from PowerLisp:
-
- Unstuff the PowerLisp-CLTL2.sit archive. The expanded folder, Documentation,
- should be placed into the PowerLisp 1.2 folder. It will replace the current
- Documentation folder.
-
- To test whether the installation was successful:
- Start up PowerLisp 1.2. It will take longer to start up, because
- the menu structure is being built and the documentation index is being
- read. When it finishes, pull down the Documentation menu. It should
- be extended with Common Lisp the Language chapter names. If not, then
- the documentation is not correctly installed.
-
- If at some point you decide you don't want the expanded documentation,
- you can disable the load at startup simply by renaming the file
- in the Documentation folder called cltl2-index.lisp to some other name.
- If this file is not found at startup, the extra documentation is not
- loaded.
-
- Editor
- The editor now places temporary files in the Macintosh temporary
- items folder, which is where they belong. This should avoid
- leaving files around when errors occur or when the program
- terminates abnormally.
-
- The PowerLisp Worksheet defaults to Lisp Mode.
-
- PostScript and C++ Mode have been removed, as they were not really
- useful.
-
- Editor Known Bugs
- Line Wrap mode and Lisp mode are not totally compatible. I avoid
- using them at the same time. I haven't gotten around to fixing this
- yet.
-
- When in Lisp Mode, dragging and scrolling a selection sometimes
- leaves garbage highighting on the screen. This is cosmetic only.
-
- Common Lisp Implementation
- A number of new functions have been added. Also, printing
- functions are more correctly implemented.
-
- Complex numbers are working better than in 1.1. A number of
- library functions will still not handle complex numbers, and will
- give an error message when passed one.
-
- Floating point comparisons are fixed now.
-
- The main item which is still lacking, relative to CLTL2, is
- CLOS. Here and there you may still stumble on some missing functions,
- but hopefully this won't come up often.
-
- Integers are now passed as tagged direct values (if they fit in 31 bits).
- This improves speed of integer manipulation quite a bit. I will
- probably continue to migrate other types to the tagging scheme.
- This reduces memory usage and garbage collection.
-
- Compiler
- 68k compiled libraries use the extension .fasl, and PowerPC compiled
- libraries use the extension .ppcl. They both have the same file
- type currently. If you try to load and execute the wrong file, it will
- not be detected and your system will crash! Sorry about this, but I didn't
- have time to deal with this. For now, your best bet may be to remove
- all libraries which are the wrong type from your library folder i.e.
- if you have a PowerMac remove all the .fasl, and if not remove all the
- .ppcl.
-
- I recommend that you recompile any of your own libraries with
- version 1.2.
-
-
-
-
- PowerLisp 1.1
- 4/4/94
- ---------------
- This is the public release of PowerLisp 1.1. It contains a significant
- number of new features, bug fixes, and enhancements over version 1.01.
- I will go over a number of these here, but probably won't cover all
- of them.
-
- I greatly appreciate the support of those of you who have chosen
- to register PowerLisp, and who have communicated with me regarding
- bugs, requested enhancements, etc. Many of the added features are
- in direct response to those communications.
-
- Thanks to Ken Long for his improved color icons, which I have
- included in this released version.
-
- Editor
- The editor, PowerEdit, has been enhanced in a number of ways,
- and a number of bugs have been fixed.
-
- The editor now uses its own heap, which is limited in size to
- 200k. A source file of about 80k is likely to fill it up. When
- the editor limit is reached, text is written to disk in a temporary
- file. As a result, you may edit many, large files without any
- effect on the space you have for your Lisp programs. I find the
- occasional slowdown from disk activity is preferable to the way
- the editor ate up memory in 1.01. Currently a temporary file for
- each open file is created, when the editor needs memory. These
- files should be deleted when the program exits.
-
- The editor has been cleaned up internally, which seems to have
- eliminated some spurious crashes and data loss. I still am not
- 100% confident in it, so keep good backups of your source files.
-
- Line Wrap mode works pretty well now. You can easily turn it on,
- but you can't make it the default yet. For large files it can
- get pretty sluggish. I usually turn it on when I need to view a long
- line, and leave it off the rest of the time.
-
- Lisp mode has been improved. As several of you noted, it seems logical
- that when a Lisp expression is outlined, pressing Enter should
- execute the entire expression, rather than just the current line.
- I have implemented this. To make it obvious, the whole expression
- gets highlighted for a fraction of a second before executing it.
-
- You may now create bold and italic text in the editor. The commands
- are located in the bottom of the Edit menu. Lisp mode no longer
- automatically italicizes comments. Bold and italicized text gets
- saved and re-loaded correctly.
-
- Another problem several people had was getting buried in open
- parentheses. When you are entering expressions, and have not closed
- enough levels of parentheses, the system seems frozen. To make it
- clearer, the editor now shows the number of open parentheses
- in the message bar. I think this helps.
-
- Editor Known Bugs
- Line Wrap mode and Lisp mode are not totally compatible. I avoid
- using them at the same time.
-
- PowerLisp Environment
- A major addition is the Memory window, which can be displayed via
- the Memory command in the new Misc menu. It brings up a window
- which gives you animated displays of the PowerLisp heaps, stacks
- and editor heap usage. It is useful for monitoring memory usage while
- you are running, and noticing how much time is spent in garbage
- collection. When you see the Nodes and Heap bars shrinking you
- know garbage is being recycled.
-
- Common Lisp Implementation
- PowerLisp 1.1 is much closer to CLTL2 compatibility than was
- 1.01. A larg number of functions and macros have been added, and
- several which were incorrectly implemented have been fixed. Several
- more libraries have been added, as many of the new, corrected
- implementations are in Common Lisp and replace built-in C++
- functions.
-
- Complex numbers and arbitrarily large integers are now supported
- in PowerLisp.
-
- The main item which is still lacking, relative to CLTL2, is
- CLOS. Here and there you may still stumble on some missing functions,
- but hopefully this won't come up often.
-
- Scope and Extent
- The important fix here is support for special declarations
- has been added to both the interpreter and compiler. Local variables
- which are declared special should now be handled correctly. In
- 1.01, only variables declared via defvar or defparameter were
- considered special (plus some built-in variables like *package*).
-
- Type Specifiers
- This area has been improved a lot, with most type expressions
- supported in most places. I hope to be able to remove the qualifiers
- so let me know if you notice any problems.
-
- Program Structure
- In 1.01 the defun and defmacro macros did not behave correctly
- in non top-level contexts. This has been corrected.
-
- Predicates
- Most of the missing predicates have been added.
-
- Control Structure
- It was pointed out to me that the do macro in 1.01 was incorrect.
- In particular, it did not update the set of local variables
- 'in parallel' as it was supposed to do. This has been fixed in 1.1.
- Also, implementations of psetq and all of the multiple value handling
- macros are included.
-
- A number of mapping functions which were missing in 1.01 have
- been added.
-
- Compiler
- The compiler now correctly compiles flet special forms, structures,
- and special declarations. labels forms compile, but the generated
- code is the same as for flet.
- labels works correctly when interpreted. Some bugs in the interpreter
- relating to these forms and function closures were identified and
- fixed.
-
- The compiler now behaves in accordance with CLTL2 concerning
- evaluation of compiled forms. Forms are not evaluated in general,
- although eval-when can be used to force evaluation at compile time.
-
- Compiled libraries now use the extension (by default) .fasl which
- is commonly used by other Lisp systems. Of course these files are not
- compatible with other Lisp systems. Compiled libraries are significantly
- smaller than 1.01 libraries. This is accomplished mostly by eliminating
- redundancy in the symbol tables. This makes loading faster.
- Libraries are about 30% smaller, and should still be compatible
- with 1.01 libraries. That is, 1.01 libraries should still load into
- 1.1, but 1.1 libraries will not be usable by 1.01.
-
- I recommend that you recompile any of your own libraries with
- version 1.1. This will allow you to benefit from the smaller
- libraries, faster load time and corrected compiler behavior.
-
- The 'missing function' warning messages which so often were emitted
- by the compiler are now eliminated. My hope is to add a better,
- more useful warning facility to replace this. In the mean time
- it was more of a source of confusion and annoyance than a help.
- At any rate, if a function is missing at run time, you will get
- an error message (the system won't crash).
-
- Declarations
- As mentioned before, special declarations are now handled
- correctly by the compiler and interpreter. Most other declarations
- are currently ignored by both the compiler and interpreter.
-
- The locally special form is not yet supported.
-
- Packages
- Some support was added here for shadowing symbols. The defpackage
- macro was added. The handling of shadowing symbols still may not
- be exactly correct.
-
- Numbers
- Many number functions have been added, including sin, cos, tan, asin,
- acos, atan, sinh, cosh, tanh, exp, expt, log, float, isqrt. Large
- integers and complex numbers are now supported.
-
- A few functions are still missing, but all the missing ones will
- explicitly generate "not implemented" messages rather than the
- normal "no function definition".
-
- Integers between 0 and 500 now are cached i.e. new ones never
- need to be created. (eq 100 100) is true, but (eq 501 501) is nil.
-
- Interpreter
- The interpreter has been sped up by reducing the number of external
- memory accesses during the interpretation process.
-
- Characters
- All characters are kept in a table, so never need to be created
- (as are integers between 0 and 500). This makes some character
- handling more efficient. Some character-related functions were
- added.
-
- Sequences
- A number of missing sequence functions are now implemented.
-
- Strings
- A number of string functions which were missing in 1.01
- are now implemented.
-
- Structures
- The defstruct macro has been rewritten in Common Lisp, and is
- included in the library 'structures.lisp'. The structure
- printing facility should now work correctly. Code which uses
- structures now compiles correctly.
-
- Streams
- The functions with-output-to-string, read-from-string are
- now implemented. The standard stream *terminal-io* has been
- added.
-
- Input/Output
- Much work has been done with the output functions. Many have
- been reimplemented. All the parameters to write are now supported.
- Circular lists can be read and written, print-level can be set,
- etc.
-
- Pretty printing is still not supported.
-
- The format function works better and more options are supported.
- I won't enumerate them here, but if you are really curious you
- could read the source code, which is included in format.lisp in
- the library folder.
-
- Some output functions, in particular print, worked incorrectly
- in 1.01. These have been fixed, but the fix may cause your code
- to output differently. Sorry. :-)
-
- Errors
- The warn function has been implemented.
-
- Backquotes
- Guy Steele's backquote handling code, with optimizations (from CLTL2)
- is now used to handle backquote forms. This correctly handles
- nested backquote forms, and generates optimally efficient forms.
-
- Documentation
- Updated this README file.
- I have included a Common Ground version of the documentation
- which has a built-in viewer. You can use this version to
- browse and print the documentation if you don't have a copy
- of Microsoft Word.
-
- The PowerLisp user guide has been updated to include the 1.1
- modifications.
-
- Non-standard Extensions
- A graphics library has been added. To use it, execute the expression:
-
- (require :graphics)
-
- This will cause the library to be loaded and you may use it to
- create graphic images.
-
- The following functions get loaded into the COMMON-LISP package:
-
- open-canvas
- use-canvas
- moveto
- lineto
- setcolor
- pensize
- fillrect
- fillpoly
- clear-canvas
-
- These functions contain (brief) usage documentation.
-
-
- PowerLisp 1.01
-
- Updates since version 1.0:
-
- Fixed problem which would cause PowerLisp to crash when
- exiting the program in certain cases.
-
- Files selected from the Finder come up on top of the Worksheet
- rather than underneath it.
-
- Fixed (setf third) function definition in cl.lisp (common lisp
- standard library).
-
- Removed MacWrite version of the documentation. I do not
- have MacWrite to test it, and it reportedly has a problem.
-
-
-
-
-
-
-
-
-